Devices, softwares and methods for enabling sip devices to operate in h.323 devices to operate in sip networks

ABSTRACT

Devices, softwares and methods enable SIP devices to operate in H.323 networks, and devices, softwares and methods enable H.323 devices to operate in SIP networks. Messages that initiate communication from a first protocol are translated into the appropriate messages of the second, responded to, and the replies are translated back into the first. Routing by the legacy network is thus seamlessly exploited.

RELATED APPLICATIONS

This is a continuation of pending U.S. Ser. No. 10/086,840, filed Feb. 28, 2002.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention is related to the field of packet networks, and more specifically to devices, softwares and methods for enabling devices to operate in networks of diverse protocols.

2. Description of the Related Art

Packet networks are increasingly used for communications. Such communications include data, and also voice for packet telephony, and so on.

Each network transmits information in packets, according to a certain protocol. Packet telephony, for example, may take place under a Voice over Internet Protocol (VoIP).

The protocol is so important that networks, devices, and even messages are often labeled by their protocol. One well established such protocol is the H.323 of the IETF (Internet Engineering Task Force). Networks that operate under this protocol are therefore often called H.323 networks, and so on.

A problem arises when components are developed that operate under a different protocol. One such protocol that is gaining increasing acceptance is the Session Initiation Protocol (SIP). Devices that use the SIP protocol are called SIP devices.

Components of a newer protocol are typically not usable in networks of an older protocol. This is a problem when a large (“legacy”) infrastructure has been installed according to the older protocol. For example, SIP devices are not usable with H.323 networks, and H.323 devices are not usable with SIP networks.

Referring to FIG. 1, one facet of the problem is described. A H.323 packet network 110 has a CSR Gatekeeper 120, a directory gatekeeper 130, and a device with a memory 140 that has configured routes stored therein.

A gatekeeper is the “switch” of the network, providing several basic services to all endpoints in its zone. Services include address translation (alias name/number-to-network address), endpoint admission control (based on bandwidth availability, concurrent call limitations, or registration privileges), bandwidth management, and zone management (the routing of calls originating or terminating in the gatekeeper zone—including multiple path re-route). Additional gatekeepers (not shown) may or may not be provided in a cluster according to the invention.

A routing application 150 runs on CSR Gatekeeper 120. Network 110 may also have one or more dynamic protocol devices 162, 164. These run dynamic protocols, such as Telephony Routing over IP (TRIP), or H.323 Annex G Protocols. Network 110 is accessed via a H.323 gatekeeper 170 as follows. A first H.323 endpoint 180 accesses H.323 gatekeeper 170, and then communicates address information to a second H.323 endpoint 190. These and other devices of network 110 may be connected to the PSTN (Public Switched Telephone Network), to an ISDN (Integrated Services Data Network), etc.

With a network such as network 110 customers may implement arbitrary routing applications, using configured gatekeepers, networks of directory gatekeepers, carrier-sensitive routing, other means, or combinations of the above.

The problem with H.323 network 110 is that it can not be accessed by a SIP device.

Referring to FIG. 2, another facet of the problem is described. A SIP packet network 210 has a CSR proxy 220, a proxy 230, and a proxy 240 that has configured routes stored therein. A routing application 250 runs on CSR proxy 220. Network 210 may also have one or more dynamic protocol devices 262, 264, that run on suitable dynamic protocols.

Network 210 is accessed via a SIP gatekeeper 270 as follows. A first SIP User Agent (UA) 280 accesses SIP gatekeeper 270, and then communicates address information to a second SIP UA 290. A SIP UA may be SIP IP telephone, or POTS/SIP IP media gateway. (“POTS” stands for Plain Old Telephone System.)

Other terminology for SIP is found in a website which, at the time this document is initially filed with the U.S. Patent Office, has a URL of <http://www.cs.columbia.ed/˜hgs/sip>.

The problem with SIP network 210 is that it can not be accessed by a H.323 endpoint device.

BRIEF SUMMARY OF THE INVENTION

The present invention overcomes these problems and limitations of the prior art.

Generally, the present invention provides devices, softwares and methods for enabling SIP devices to operate in H.323 networks, and the same for H.323 devices in SIP networks. Messages that initiate communication from one protocol are translated into the other, responded to, and the replies are translated back. Routing by the legacy network is thus seamlessly exploited. Upgraded devices may be used with the legacy network, without the need of a network upgrade.

The invention will become more readily apparent from the following Detailed Description, which proceeds with reference to the drawings, in which:

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a H.323 network diagram in the prior art.

FIG. 2 is a SIP network diagram in the prior art.

FIG. 3 is a block diagram of a H.323 proxy server made according to an embodiment of the present invention.

FIG. 4 is a block diagram of a SIP proxy server made according to an embodiment of the present invention.

FIG. 5 is a network diagram illustrating a use of the H.323 proxy server of FIG. 3.

FIG. 6 is a network diagram illustrating a use of the SIP proxy server of FIG. 4.

FIG. 7 is a flowchart illustrating a method according to an embodiment of the present invention.

FIG. 8 is a flowchart illustrating a method according to another embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT(S)

As has been mentioned, the present invention provides devices, softwares and methods for enabling SIP devices to operate in H.323 networks, and conversely for enabling H.323 devices to operate in SIP networks. The invention is now described in more detail.

Referring now to FIG. 3, a network switch 310 made according to an embodiment of the invention is described in more detail. Switch 310 may be any H.323 network switch, such as a router, a gateway, a bridge, etc. Or it can be a farm of interconnected switches. Switch 310 is a combined H.323 gatekeeper and SIP Proxy Translator.

Switch 310 has a network interface 312 for interfacing with a H.323 network, such as network 110 of FIG. 1. In fact, it may interoperate with such a network without the latter perceiving any incompatibility. Switch 310 may also communicate with SIP devices, such as a SIP User Agent (UA).

Switch 310 also has a processor 314 coupled with network interface 312. Processor 314 may be implemented as a Digital Signal Processor (DSP), Central Processing Unit (CPU), or any other equivalent way known in the art.

Switch 310 additionally includes a memory 318, on which a program 319 may reside. Functions of processor 314 may be controlled by program 319, as will become apparent from the below.

Referring now to FIG. 4, a network switch 410 made according to an embodiment of the invention is described in more detail. Switch 410 may be any SIP network switch, such as a proxy server, a router, a gateway, a bridge, etc. Or switch 410 may be implemented by a farm, in other words a group of (proxy) servers that are configured to work together, so that they behave as a single server. Switch 410 is a H.323—Compatible SIP Proxy Translator.

Switch 410 has a network interface 412 for interfacing with a SIP network, such as network 210 of FIG. 2. In fact, it may interoperate with such a network without the latter perceiving any incompatibility. Switch 410 may also communicate with H.323 endpoint devices.

Switch 410 also has a processor 414 coupled with network interface 412. Processor 414 may be implemented as a Digital Signal Processor (DSP), Central Processing Unit (CPU), or any other equivalent way known in the art.

Switch 410 additionally includes a memory 418, on which a program 419 may reside. Functions of processor 414 may be controlled by program 419, as will become apparent from the below.

As seen from the above, the present invention may be implemented by one or more devices that include logic circuitry. The device performs functions and/or methods as are described in this document. The logic circuitry may include a processor that may be programmable for a general purpose, or dedicated, such as microcontroller, a microprocessor, a Digital Signal Processor (DSP), etc. For example, the device may be a digital computer like device, such as a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer.

Moreover, the invention additionally provides methods, which are described below. The methods and algorithms presented herein are not necessarily inherently associated with any particular computer or other apparatus. Rather, various general-purpose machines may be used with programs in accordance with the teachings herein, or it may prove more convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these machines will become apparent from this description.

In all cases there should be borne in mind the distinction between the method of the invention itself and the method of operating a computing machine. The present invention relates both to methods in general, and also to steps for operating a computer and for processing electrical or other physical signals to generate other desired physical signals.

The invention additionally provides programs, and methods of operation of the programs. A program is generally defined as a group of steps leading to a desired result, due to their nature and their sequence. A program made according to an embodiment of the invention is most advantageously implemented as a program for a computing machine, such as a general-purpose computer, a special purpose computer, a microprocessor, etc.

The invention also provides storage media that, individually or in combination with others, have stored thereon instructions of a program made according to the invention. A storage medium according to the invention is a computer-readable medium, such as a memory, and is read by the computing machine mentioned above. The steps or instructions of a program made according to an embodiment of the invention requires physical manipulations of physical quantities. Usually, though not necessarily, these quantities may be transferred, combined, compared, and otherwise manipulated or processed according to the instructions, and they may also be stored in a computer-readable medium. These quantities include, for example electrical, magnetic, and electromagnetic signals, and also states of matter that can be queried by such signals. It is convenient at times, principally for reasons of common usage, to refer to these quantities as bits, data bits, samples, values, symbols, characters, images, terms, numbers, or the like. It should be borne in mind, however, that all of these and similar terms are associated with the appropriate physical quantities, and that these terms are merely convenient labels applied to these physical quantities, individually or in groups.

This detailed description is presented largely in terms of flowcharts, display images, algorithms, and symbolic representations of operations of data bits within at least one computer readable medium, such as a memory. An economy is achieved in the present document in that a single set of flowcharts is used to describe both methods of the invention, and programs according to the invention. Indeed, such descriptions and representations are the type of convenient labels used by those skilled in programming and/or the data processing arts to effectively convey the substance of their work to others skilled in the art. A person skilled in the art of programming may use these descriptions to readily generate specific instructions for implementing a program according to the present invention.

Often, for the sake of convenience only, it is preferred to implement and describe a program as various interconnected distinct software modules or features, individually and collectively also known as software and softwares. This is not necessary, however, and there may be cases where modules are equivalently aggregated into a single program with unclear boundaries. In any event, the software modules or features of the present invention may be implemented by themselves, or in combination with others. Even though it is said that the program may be stored in a computer-readable medium, it should be clear to a person skilled in the art that it need not be a single memory, or even a single machine. Various portions, modules or features of it may reside in separate memories, or even separate machines. The separate machines may be connected directly, or through a network, such as a local access network (LAN), or a global network, such as the Internet.

In the present case, methods of the invention are implemented by machine operations. In other words, embodiments of programs of the invention are made such that they perform methods of the invention that are described in this document. These may be optionally performed in conjunction with one or more human operators performing some, but not all of them. As per the above, the users need not be collocated with each other, but each only with a machine that houses a portion of the program. Alternately, some of these machines may operate automatically, without users and/or independently from each other.

Referring now to FIG. 5, an arrangement is described for using switch 310 of FIG. 3. It will be appreciated that switch 310 has been used in H.323 network 110 of FIG. 1, by replacing H.323 Gatekeeper 170.

A SIP User Agent (UA) 520 can access switch 310, on behalf of SIP destination UA 530. This way SIP destination UA 530 can use H.323 network 110. And this without having to upgrade or change the remainder of H.323 packet network 110, or with network 110 knowing that it is facilitating a non-H.323 device.

Referring now to FIG. 6, an arrangement is described for using switch 410 of FIG. 4. It will be appreciated that switch 410 has been used in SIP network 210 of FIG. 2, by replacing SIP Gatekeeper 270.

A first H.323 endpoint (EP) 620 can access switch 410, on behalf of a second H.323 endpoint (EP) 630. This way second H.323 endpoint (EP) 630 can use SIP network 210. And this without having to upgrade or change the remainder of SIP packet network 210, or with network 210 knowing that it is facilitating a non-SIP device.

Referring now to FIG. 7, a flowchart 700 is used to illustrate a method according to an embodiment of the invention. The method of flowchart 700 may also be practiced by network switch 310 of FIG. 3.

According to a box 710, a SIP invite message is received and analyzed from SIP UA 520. A SIP invite message is a message as per the SIP protocol.

According to a next box 720, a H.323 request message is generated. The request message is generated responsive to the analyzed SIP invite message. It is, in a sense, a translation.

The request message may be a ASN.1 encoded RAS LRQ message. RAS is Registration, Admission, and Status (including bandwidth changes) between H.323 entities and the relevant Gatekeeper. RAS is defined in standard H.225. LRQ is a Location Request message. “ASN” stands for Abstract Syntax Notation, and ASN.1 is defined in reference with H.323 gatekeepers.

According to a next box 730, the generated request message is transmitted to a gatekeeper, such as H.323 directory gatekeeper 130. In some instances, the gatekeeper is preconfigured, and the request message is transmitted over a UDP socket, although that is not necessary for practicing the invention.

A primary network device of network 110 is then selected. The primary network device is identified by its network address. Optionally, an alternate network device may also be selected, identified by its network address. In both cases, selection takes place as is known in the art for H.323 networks, and further description is therefore omitted as superfluous.

According to a next box 740, a H.323 response message is received responsive to the transmitted request message. The response message may be a ASN.1 encoded RAS LCF (Location Confirm) message. Or it may be a LRJ (Location Reject) message, or a RIP (Routing Information Protocol) message.

The response message may be received from the same gatekeeper of the H.323 network 110 that the request message was transmitted to. That is not necessary, however, for practicing the invention. The response message may be received from another device, with a proper arrangement. The other device may be a related gatekeeper, although that is not necessary for practicing the invention. The related gatekeeper may be one in a cluster with the one that the request message was transmitted to.

According to a next box 750, a primary network address is decoded from the response message. The primary network address corresponds to the selected primary device of network 110.

Optionally, an alternate network address is also decoded from the response message. The alternate network address corresponds to the alternate selected device of network 110.

According to a next box 760, a reply is sent to the SIP invite message. The reply contains the primary network address. If an alternate network address has also been supplied, the reply contains also the alternate network address.

The reply is in SIP terms. In one embodiment, the reply is sent to the device that sent the SIP invite message (e.g. SIP UA 520 of FIG. 5). Then that device may launch a new SIP invite based on the translated request.

In another embodiment, the reply is sent to another device. For example the reply may be to divert the SIP message to SIP UA 530 of FIG. 5.

Referring now to FIG. 8, a flowchart 800 is used to illustrate a method according to another embodiment of the invention. The method of flowchart 800 may also be practiced by device 410 of FIG. 4.

According to a box 810, a H.323 request message is received and analyzed. The request message may be a ASN.1 encoded RAS LRQ message, and may be received from first H.323 EP 620.

According to a next box 820, a SIP location request message is generated responsive to the analyzed H.323 request message. The SIP location request message is in a sense a translation.

According to a next box 830, the generated SIP location request message is transmitted to a gatekeeper, such as directory gatekeeper 230. The gatekeeper may be preconfigured, and the SIP location request message may be transmitted over a UDP socket.

A primary device of network 210, is then selected. The primary network device is identified by its network address. Optionally, an alternate network device may also be selected, identified by its network address. In both cases, selection takes place as is known in the art for H.323 networks, and further description is therefore omitted as superfluous.

According to a next box 840, a SIP response message is received responsive to the transmitted SIP location request message. The response message may be received from the same gatekeeper of network 210 that the request message was transmitted to. That is not necessary, however, for practicing the invention. The response message may be received from another device, with a proper arrangement. The other device may be a related gatekeeper, although that is not necessary for practicing the invention. The related gatekeeper may be one in a cluster with the one that the request message was transmitted to.

According to a next box 850, a primary network address is decoded from the response message. The primary network address corresponds to the selected primary network device.

Optionally, an alternate network address is also decoded from the response message. The alternate network address corresponds to the selected alternate network device.

According to a next box 860, a reply is sent to the H.323 request message. The reply is in H.323 terms. The reply contains the primary network address. If an alternate network address has also been supplied, the reply contains also the alternate network address.

A person skilled in the art will be able to practice the present invention in view of the description present in this document, which is to be taken as a whole. Numerous details have been set forth in order to provide a more thorough understanding of the invention. In other instances, well-known features have not been described in detail in order not to obscure unnecessarily the invention.

While the invention has been disclosed in its preferred form, the specific embodiments as disclosed and illustrated herein are not to be considered in a limiting sense. Indeed, it should be readily apparent to those skilled in the art in view of the present description that the invention may be modified in numerous ways. The inventor regards the subject matter of the invention to include all combinations and subcombinations of the various elements, features, functions and/or properties disclosed herein.

The following claims define certain combinations and subcombinations, which are regarded as novel and non-obvious. Additional claims for other combinations and subcombinations of features, functions, elements and/or properties may be presented in this or a related document. 

1. A device comprising: a protocol translator to communicate with a first networking device according to a first protocol and to communicate with one or more second devices according to a second protocol, the protocol translator to receive an initiation message from the first networking device according to the first protocol, and to identify at least one of the second networking devices to communicate with the first networking device responsive to the initiation message.
 2. The device of claim 1 where the protocol translator is configured to convert the initiation message configured according to the first protocol to a request message configured according to the second protocol, and to transmit the request message to a network gatekeeper configured according to the second protocol.
 3. The device of claim 2 where the protocol translator is configured to receive a response message in a second protocol responsive to the request message, the response message identifying at least one of the second networking devices to communicate with the first networking device.
 4. The device of claim 3 where the protocol translator is configured to convert the response message configured according to the second protocol to a reply message configured according to the first protocol, the reply message including an identification of the second networking devices identified in the response message, and to send the reply message to the first networking device in a first protocol.
 5. The device of claim 3 where the protocol translator is configured to decode at least one network address corresponding to the identified second networking devices from the response message.
 6. The device of claim 5 where the protocol translator is configured to generate a reply message according to the first protocol, the reply message including the decoded network address corresponding to the identified second networking devices from the response message, and to send the reply message to the first networking device.
 7. The device of claim 1 where the protocol translator is configured to receive and analyze a SIP invite message from the first networking device, to generate a H.323 request message responsive to the SIP invite message, and to transmit the generated H.323 request message to a H.323 gatekeeper.
 8. The device of claim 7 where the protocol translator is configured to receive a H.323 response message responsive to the H.323 request message, to decode from the H.323 response message at least one network address corresponding to a second networking device associated with the H.323 gatekeeper, and send a SIP reply message responsive to the SIP invite message that contains the decoded network address.
 9. The device of claim 1 where the protocol translator is configured to receive and analyze a H.323 request message from the first networking device, to generate a SIP location request message responsive to the H.323 request message, and to transmit the generated a SIP location request message to a SIP gatekeeper.
 10. The device of claim 9 where the protocol translator is configured to receive a SIP response message responsive to the SIP location request message, to decode from the SIP response message at least one network address corresponding to a second networking device associated with the SIP gatekeeper, and send a H.323 reply message responsive to the H.323 request message that contains the decoded network address.
 11. A method comprising: receiving an initiation message configured according to a first protocol, the initiation message to initiate communication between a first network device configured according to a first protocol and at least one second networking device configured according to a second protocol; and identifying at least one of the second networking devices configured according to the second protocol to communicate with the first networking device configured according to the first protocol responsive to the initiation message.
 12. The device of claim 11 includes converting the initiation message configured according to the first protocol to a request message configured according to the second protocol; and transmitting the request message to a network gatekeeper configured according to the second protocol.
 13. The device of claim 12 includes receiving a response message in a second protocol responsive to the request message, the response message identifying at least one of the second networking devices to communicate with the first networking device.
 14. The device of claim 13 includes converting the response message configured according to the second protocol to a reply message configured according to the first protocol, the reply message including an identification of the second networking devices identified in the response message; and sending the reply message to the first networking device in a first protocol.
 15. The device of claim 13 includes decoding at least one network address corresponding to the identified second networking devices from the response message.
 16. The device of claim 15 includes generating a reply message according to the first protocol, the reply message including the decoded network address corresponding to the identified second networking devices from the response message; and sending the reply message to the first networking device.
 17. A system comprising: at least one networking device to communicate with a first packet protocol; a network configured according to a second packet protocol; and a protocol translator to receive requests in the first protocol from the networking device, the received requests to initiate communications over the network in the second protocol, the protocol translator to identify one or more devices associated with the network to communicate with the networking device and to respond to the requests with the identified devices associated with the network.
 18. The system of claim 17 where the protocol translator is configured to convert the requests received in the first protocol to a request message configured according to the second protocol, and to transmit the request message to a network gatekeeper in the network.
 19. The system of claim 18 where the protocol translator is configured to receive a response message in a second protocol responsive to the request message, the response message identifying the one or more devices associated with the network to communicate with the networking device.
 20. The system of claim 19 where the protocol translator is configured to decode at least one network address corresponding to the identified devices associated with the network from the response message, generate a reply message according to the first protocol, the reply message including the decoded network address corresponding to the identified devices from the response message, and to send the reply message to the networking device. 